home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Aktuell
/
Amiga Aktuell.iso
/
amiga-aktuell
/
net tools
/
fido net
/
ftsc-all-91
/
fsc-0074.z01
/
FSC-0074.001
Wrap
Text File
|
1993-07-28
|
16KB
|
476 lines
| Document: FSC-0074
| Version: 001
| Date: 28th July 1993
| Author: John Souvestre, David Troendle, Bob Davis, George Peace
|
| FTS-0004.002 -- proposed
EchoMail Specification
June, 1992
This document began as
the Conference Mail System User Manual
By Bob Hartman t/a Spark Software
FidoNet(tm) node 132/101 (currently 1:104/501)
Used with permission
Revision 2:
06 Jun 1991
John Souvestre, David Troendle, Bob Davis
29 Oct 1991
John Souvestre, David Troendle
28 Jan 1992
George Peace
02 Jun 1992
George Peace
ECHOMAIL DEFINED
EchoMail is a technique that permits several nodes on a
network to share a message base. It is similar in concept to
the conferences available on commercial information services
but is most closely related to the Usenet system consisting of
thousands of systems world wide. All systems sharing a given
conference see any messages entered into the conference by any
of the participating systems. This can be implemented in such
a way as to be totally transparent to the users of a
particular system. In fact, they may not even be aware of the
network being used to move their messages about from node to
node!
Unfortunately, EchoMail has disadvantages as well. Many users
who are not educated about EchoMail systems do not realize the
messages transmitted cost MANY sysops (system operators)
money, not just the local sysop. This is an important
consideration in EchoMail and should not be taken lightly. In
a conference with 100 systems participating the cost per
message can be quite high.
BRIEF HISTORY OF ECHOMAIL
In late 1985, Jeff Rush, a Fido sysop in Dallas, wanted a
convenient means of sharing ideas with the other Dallas
sysops. He created a system of programs he called Echomail,
and the Dallas sysops' Conference was born.
Within a short time sysops in other areas began hearing of
this marvelous new gadget and EchoMail took on a life of its
own. Today the FidoNet public network boasts a myriad of
conferences varying in size from a handful of participants to
Sysop conferences with hundreds of participants. It is not
uncommon for a system to carry hundreds or more conferences
and share those conferences with 10 or more nodes.
HOW ECHOMAIL WORKS
Today's EchoMail processing is functionally compatible with
the original EchoMail utilities. In general, the process is:
- A message is entered into a designated area on a FidoNet
compatible system.
- This message is "Exported" along with some 'control
information' to each system "linked" to the conference
through the originating system.
- Each receiving system "Imports" the message into the
proper Conference Mail area.
- The receiving systems then "Export" these messages, along
with additional control information, to each of their own
EchoMail links.
- Return to the import step.
The method is quite simple in general. Of course, following
the steps literally means messages would never stop being
Exported and transmitted to other systems. This obviously
would not be desired. The information contained in the
'control information' section is used to prevent exporting the
same message more than once to a single system.
MESSAGE CONTROL INFORMATION
Control information is associated with each EchoMail message.
This information consists of certain special lines placed
inside the message. These lines are typically inserted
automatically by the program which prepares or processes the
message, not by the person writing it.
In FTS-0001 terminology, these control information lines shall
be inside the "text" field of a "packed message".
Control information lines shall contain only ASCII characters,
from 32 to 126, except the first character of the path line
and as noted elsewhere in this document. This limitation
applies only to control information lines.
Alphabetic characters in required literal strings (AREA,
Origin, SEEN-BY, and PATH) are case-sensitive.
All control information lines shall be terminated with ASCII
character 13 (carriage return).
These required control information lines determine how
EchoMail is handled:
1. Area line
There shall be exactly one area line in an exported message.
The AREA line:
- Shall be the first line of the text and thus shall
immediately follow the packed message header. This
position is "offset 0" of the "text" portion of the
packed message.
- Shall be formatted as:
AREA:CONFERENCE
AREA: is a required five character upper case
literal.
CONFERENCE is the name of the conference. The
conference name is composed of ASCII characters in
the range 33 to 96 and 123 to 126. The conference
name shall be no more than 60 characters in length.
The AREA line is added when a conference is "Exported" to
other systems. It is based upon information found in a
configuration file for the designated message area. This
field is used by receiving systems to "Import" messages into
the correct EchoMail area.
Some implementations insert a Ctrl-A (0x01) immediately
preceding the AREA: literal (^AAREA:CONFERENCE).
Six months after adoption of this document the ^AAREA: format
shall be processed equally with the AREA: format when either
occurs in received packets.
2. Origin Line
There shall be exactly one origin line in a message. It shall
be placed in the message following all user entered
information and immediately before the remaining control
information lines.
The origin line:
- Shall begin with the eleven character literal:
<space>*<space>Origin:<space>
- Is optionally followed by user/system defined data in the
ASCII range 32 to 126.
- Shall end with a FidoNet network address enclosed in
parenthesis:
([<zone>:]<net>/<node>[.<point>][@<domain>])
- Shall be no more than 79 characters long including the
required lead-in and address information.
- Shall be inserted into the message at the originating
system.
The complete line might look like:
* Origin: Conference Mail BBS (1:132/101)
3. Seen-by Lines
Seen-by lines are the focus of EchoMail distribution control
information. They are used to determine which addresses
(systems) have received messages. There can be as many seen-
by lines as required to store the necessary information.
Seen-by lines consist of "SEEN-BY:<space>", followed by a list
of net/node numbers corresponding to the systems which have
received that message. The net/node number of each system to
which a message is exported is added to the seen-by lines at
the time of export.
There shall be exactly one set of seen-by lines in a message.
Seen-by lines:
- Shall follow the origin line.
- Shall begin with the nine character literal:
SEEN-BY:<space>
- Shall contain a list of net/node numbers.
- Shall be no more than 80 characters long including the
required literal.
The complete lines might look like:
SEEN-BY: 104/1 501 132/101 113 136/601 1014/1
SEEN-BY: 1014/2 3
The list of net/node numbers:
- Shall identify at least one address. "Blank" seen-by
lines shall not be transmitted.
- Shall be sorted in ascending net/node order.
- Shall not contain repeated node numbers.
- Shall use only "2D" net/node notation.
- May use short form address notation where a net number is
listed once on any one line. These 2 lines are
equivalent:
SEEN-BY: 104/1 104/501 132/101 132/113 136/601
SEEN-BY: 104/1 501 132/101 113 136/601
Some implementations insert a Ctrl-A (0x01) immediately
preceding the SEEN-BY: literal (^ASEEN-BY:).
Six months after adoption of this document the ^ASEEN-BY:
format shall be processed equally with the SEEN-BY: format
when either occurs in received packets.
4. Path Lines
Path lines identify a list of net/node numbers that processed
a message before it reached the current system. There can be
as many path lines as required to store the necessary
information.
This is different from seen-by lines, in that seen-by lines
list list all systems to which the message has been sent while
path lines list the systems which have processed the message.
There shall be exactly one set of path lines in a message.
Path lines:
- Shall follow seen-by lines.
- Shall be the last line(s) in the text field of a packed
message.
- Shall begin with the seven character literal:
^APATH:<space>
The ^A is a special character which stands for Control-A
(ASCII character 1), and is required at the beginning of
each path line.
- Shall contain a list of net/node numbers.
- Shall be no more than 80 characters long including the
required literal.
The complete path line might look like:
^APATH: 132/101 1014/1
The list of net/node numbers:
- Shall identify at least one net/node number. "Blank"
path lines shall not be transmitted.
- Shall not be sorted. They shall remain in the order
representing the actual "path" along which the message
traveled.
- Shall use only "2D" net/node notation.
- Shall begin with the net/node of the originating system.
- Shall not be deleted during processing. The original
path information shall be maintained from origin to final
destination.
ECHOMAIL TOPOLOGY
The way in which systems link together for a particular
conference is called the "EchoMail Topology." It is important
to know this structure for two reasons:
- It is important to have a topology which is efficient in
the transfer of the EchoMail messages.
- It is important to have a topology which will not cause
systems to see the same messages more than once.
Efficiency can be measured in a number of ways:
- Least time involved for all systems to receive a message
- Least cost for all systems to receive a message
- Fewest phone calls required for all systems to receive a
message.
Users of EchoMail systems have determined (through trial and
error) the best measure of efficiency to be a combination of
all three measurements. Balancing the equation is not
trivial, but some guidelines can be offered:
- Have nodes form "stars" for distribution of EchoMail.
This arrangement has several nodes all receiving their
EchoMail from the same system. In general the systems on
the "outside" of the star poll the system on the
"inside". The system on the "inside" in turn polls other
systems in a similar star configuration to receive the
EchoMail that is being passed on to the "outside"
systems.
- Utilize fully connected polygons with few vertices.
Nodes can be connected in a triangle (A sends to B and C,
B sends to A and C, C sends to A and B) or a fully
connected square (all corners of the square send to all
of the other corners). This method is useful for getting
EchoMail messages to each node as quickly as possible.
All of these efficiency guidelines have to be tempered with
the guidelines dealing with keeping duplicate messages from
being exported. Duplicates will occur in any topology that
forms a closed polygon that is not fully connected. Take for
example the following configuration:
A ----- B
| |
| |
C ----- D
This square is a closed polygon that is not fully connected.
It is capable of generating duplicates:
1. A message is entered on node A.
2. Node A exports the message to node B and node C placing
the seen-by for A, B, and C in the message as it does so.
3. Node B sees that node D is not listed in the seen-by and
exports the message to node D.
4. Node C sees that node D is not listed in the seen-by and
exports the message to node D.
At this point node D has received the same message twice - a
duplicate was generated.
Normally a "dup-ring" will not be as simple as a square.
Generally it will be caused by a system on one end of a long
chain accidentally connecting to a system on the other end of
the chain. This causes the two ends of the chain to become
connected, forming a polygon.
In FidoNet this problem is reduced somewhat by having a
regional EchoMail star distribution architecture that
maintains EchoMail connections within regions of the world.
Within that architecture only a small number of prearranged
systems (regional collection systems) make inter-regional
connections. This architecture, along with multiple daily
connections, results in an efficient topology which typically
allows global distribution within 24 hours.
THE PATH LINE AND TOPOLOGY
The PATH line stores the net/node numbers of each system
having actually processed a message. This information is
useful in correcting the biggest problem encountered by nodes
running an Echomail compatible system - the problem of finding
the cause of duplicate messages. How does the PATH line help
solve this problem? Take the following path line as an
example:
^APATH: 107/6 107/312 132/101
This shows that the message was processed by system 107/6 and
transferred to system 107/312. It further shows system
107/312 transferred the message to 132/101, and 132/101
processed it again. Here's another example:
^APATH: 107/6 107/312 107/528 107/312 132/101
This shows the message having been processed by node 107/312
on more than one occasion. Based upon the earlier description
of the 'information control' fields in Echomail messages, this
identifies an error in processing. This further shows node
107/528 as the node which apparently processed the message
incorrectly. In this case the path line can be used to help
locate the source of duplicate messages or topology problems.
In a conference with many participants it becomes almost
impossible to determine the exact topology used. In these
cases the use of the path line can help a moderator or
distributor of a conference track any possible breakdowns in
the overall topology, while not substantially increasing the
amount of information transmitted. Having this small amount
of information added to each message pays for itself very
quickly when it can be used to help detect a topology problem
causing duplicate messages to be transmitted to each system.